Communication systems employ coding to ensure reliable communication across noisy communication channels. It is possible to construct error-correcting codes in which the likelihood of failure is arbitrarily low. This coding technique requires adding increasing amounts of redundant data to the original data message. Shannon's theorem sets an upper bound to the error correction rate that can be achieved and, thus, the level of noise that can be tolerated using a fixed amount of redundancy (i.e., Shannon limit). However, this theorem does not tell designers how to construct such an optimal apparatus or system.
As a result, coding design has focused on achieving rates approaching the Shannon limit. One such class of codes that approach the Shannon limit is Low Density Parity Check (LDPC) codes. Traditionally, LDPC codes have not been widely deployed because of a number of drawbacks. One drawback is that LDPC encoding techniques are highly complex. Another drawback is that encoding an LDPC code using a generator matrix requires storing a very large, non-sparse matrix. Additionally, LDPC codes require large blocks to be effective; consequently, even though parity check matrices of LDPC codes are sparse, storing these matrices is problematic. Moreover, recent changes in wireless communications present additional challenges for coding design.
Recently, a new 802.11 Task Group (TGn) was formed to develop amendments to the 802.11 standard for local-area wireless networks. New wireless standards are expected to enable real data throughput estimated to reach a theoretical 540 Mbit/s. This will require even higher raw data rates at the physical layer, and may be up to 40 times faster than 802.11b, and near 10 times faster than 802.11a or 802.11g. Accordingly, coding design for error correction has become even more challenging for communication systems operating at higher data rates and in conformance with newly adopted wireless standards.
Therefore, there is a need in the art for an LDPC communication system that employs simple encoding and decoding techniques. There is also a need for using LDPC codes efficiently to support high data rates, without introducing greater complexity. Additionally, there is a need to improve performance of LDPC encoders and decoders, while minimizing storage requirements for implementing LDPC coding.
The needs presented above as well as other needs are addressed by the present invention.